package com.cdqidi.core.weixinmanager.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 微信用户信息
 *
 * @author sjk
 */
@Getter
@Setter
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@TableName("sys_wx_UserInfo")
public class UserInfo extends Model<UserInfo> implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "openid", type = IdType.ASSIGN_ID)
    private String openid;
    /**
     * 是否订阅该公众号:用户是否订阅该公众号标识，值为0时，代表此用户没有关注该公众号，拉取不到其余信息。
     */
    @TableField("subscribe")
    private Integer subscribe;
    /**
     * 用户昵称
     */
    @TableField("nick_name")
    private String nickName;
    /**
     * 用户所在城市
     */
    @TableField("city")
    private String city;
    /**
     * 用户所在国家
     */
    @TableField("country")
    private String country;
    /**
     * 用户所在省份
     */
    @TableField("province")
    private String province;
    /**
     * 用户语言
     */
    @TableField("language")
    private String language;
    /**
     * 用户头像
     */
    @TableField("head_img_url")
    private String headImgUrl;
    /**
     * 关注时间
     */
    @TableField("subscribe_time")
    private Long subscribeTime;
    /**
     * 全局唯一编号
     */
    @TableField("union_id")
    private String unionId;
    /**
     * 用户所在分组id
     */
    @TableField("group_id")
    private String groupId;
    /**
     * 状态
     */
    @TableField("status")
    private Integer status;
    /**
     * 添加时间
     */
    @TableField("add_time")
    private LocalDateTime addTime;
    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;
    /**
     * 性别
     */
    @TableField("sex")
    private String sex;
    /**
     * 是否关注
     */
    @TableField("sub")
    private String sub;
    /**
     * 公众号
     */
    @TableField("appid")
    private String appId;

    public void freeData() {
        this.openid = null;
        this.subscribe = null;
        this.nickName = null;
        this.city = null;
        this.country = null;
        this.province = null;
        this.language = null;
        this.headImgUrl = null;
        this.subscribeTime = null;
        this.unionId = null;
        this.groupId = null;
        this.status = null;
        this.addTime = null;
        this.updateTime = null;
        this.sex = null;
        this.sub = null;
        this.appId = null;
    }

}
